package com.mysterymall.Service;

import com.mysterymall.Common.Utils.Result;
import com.mysterymall.Model.Dto.LoginDto;
import com.mysterymall.Model.Dto.UserDto;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
 * @ClassName com.mysterymall.Service
 * @Description
 * @Author HuangWX
 * @Time 2023/11/04  00:03
 */
public interface UserService {


    /**
     * 登录
     * @param loginDto 登录信息
     * @return Result
     */
    Result login(LoginDto loginDto);



    Result addUser(UserDto userDto);


    /**
     * 注册
     * @param loginDto 注册信息
     * @return Result
     */
    Result registration(LoginDto loginDto, HttpServletRequest request) throws IOException;

    /**
     * 获取用户信息
     * @return Result
     */
    Result userInfo();


    /**
     * 修改用户信息
     * @param userDto 用户信息
     * @return Result
     */
    Result changeInfo(UserDto userDto);


    /**
     * 修改密码
     * @param loginDto 登录信息
     * @return Result
     */
    Result changePassword(LoginDto loginDto);

    /**
     * 获取所有用户
     * @return Result
     */
    Result getAllUser(Integer page, Integer size);

    /**
     * 模糊搜索获取用户信息
     * @return Result
     */
    Result userInfoFuzzySearch(String search);

    /**
     * 修改用户信息
     * @param userDto 用户信息
     * @return Result
     */
    Result updateUserInfo(UserDto userDto);


    Result getBalance();

    Result getMyAddress();

    Result getAdminList();

    Result getAdminLog(Integer page, Integer size, String userId);
}
